/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Luis_Angel
 */
@Entity
@Table(name = "DetalleOrdenImpuesto")
@NamedQueries({
    @NamedQuery(name = "DetalleOrdenImpuesto.findAll", query = "SELECT d FROM DetalleOrdenImpuesto d"),
    @NamedQuery(name = "DetalleOrdenImpuesto.findByNroOrden", query = "SELECT d FROM DetalleOrdenImpuesto d WHERE d.detalleOrdenImpuestoPK.nroOrden = :nroOrden"),
    @NamedQuery(name = "DetalleOrdenImpuesto.findByIdImpuesto", query = "SELECT d FROM DetalleOrdenImpuesto d WHERE d.detalleOrdenImpuestoPK.idImpuesto = :idImpuesto"),
    @NamedQuery(name = "DetalleOrdenImpuesto.findByPorcentajeImpuesto", query = "SELECT d FROM DetalleOrdenImpuesto d WHERE d.porcentajeImpuesto = :porcentajeImpuesto"),
    @NamedQuery(name = "DetalleOrdenImpuesto.findByMonto", query = "SELECT d FROM DetalleOrdenImpuesto d WHERE d.monto = :monto"),
    @NamedQuery(name = "DetalleOrdenImpuesto.findByCtaDebe", query = "SELECT d FROM DetalleOrdenImpuesto d WHERE d.ctaDebe = :ctaDebe"),
    @NamedQuery(name = "DetalleOrdenImpuesto.findByCtaHaber", query = "SELECT d FROM DetalleOrdenImpuesto d WHERE d.ctaHaber = :ctaHaber")})
public class DetalleOrdenImpuesto implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetalleOrdenImpuestoPK detalleOrdenImpuestoPK;
    @Column(name = "porcentaje_impuesto")
    private BigDecimal porcentajeImpuesto;
    @Column(name = "monto")
    private BigDecimal monto;
    @Column(name = "cta_debe")
    private String ctaDebe;
    @Column(name = "cta_haber")
    private String ctaHaber;
    @JoinColumn(name = "id_impuesto", referencedColumnName = "id_impuesto", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Impuesto impuesto;
    @JoinColumn(name = "nro_orden", referencedColumnName = "nro_orden", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Orden orden;

    public DetalleOrdenImpuesto() {
    }

    public DetalleOrdenImpuesto(DetalleOrdenImpuestoPK detalleOrdenImpuestoPK) {
        this.detalleOrdenImpuestoPK = detalleOrdenImpuestoPK;
    }

    public DetalleOrdenImpuesto(String nroOrden, int idImpuesto) {
        this.detalleOrdenImpuestoPK = new DetalleOrdenImpuestoPK(nroOrden, idImpuesto);
    }

    public DetalleOrdenImpuestoPK getDetalleOrdenImpuestoPK() {
        return detalleOrdenImpuestoPK;
    }

    public void setDetalleOrdenImpuestoPK(DetalleOrdenImpuestoPK detalleOrdenImpuestoPK) {
        this.detalleOrdenImpuestoPK = detalleOrdenImpuestoPK;
    }

    public BigDecimal getPorcentajeImpuesto() {
        return porcentajeImpuesto;
    }

    public void setPorcentajeImpuesto(BigDecimal porcentajeImpuesto) {
        this.porcentajeImpuesto = porcentajeImpuesto;
    }

    public BigDecimal getMonto() {
        return monto;
    }

    public void setMonto(BigDecimal monto) {
        this.monto = monto;
    }

    public String getCtaDebe() {
        return ctaDebe;
    }

    public void setCtaDebe(String ctaDebe) {
        this.ctaDebe = ctaDebe;
    }

    public String getCtaHaber() {
        return ctaHaber;
    }

    public void setCtaHaber(String ctaHaber) {
        this.ctaHaber = ctaHaber;
    }

    public Impuesto getImpuesto() {
        return impuesto;
    }

    public void setImpuesto(Impuesto impuesto) {
        this.impuesto = impuesto;
    }

    public Orden getOrden() {
        return orden;
    }

    public void setOrden(Orden orden) {
        this.orden = orden;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detalleOrdenImpuestoPK != null ? detalleOrdenImpuestoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof DetalleOrdenImpuesto)) {
            return false;
        }
        DetalleOrdenImpuesto other = (DetalleOrdenImpuesto) object;
        if ((this.detalleOrdenImpuestoPK == null && other.detalleOrdenImpuestoPK != null) || (this.detalleOrdenImpuestoPK != null && !this.detalleOrdenImpuestoPK.equals(other.detalleOrdenImpuestoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.DetalleOrdenImpuesto[detalleOrdenImpuestoPK=" + detalleOrdenImpuestoPK + "]";
    }

}
